// /****************************** (C) COPYRIGHT 2016 Rsestudio ****************************
// * File Name          : 
// * Author             : RSES_Liyang
// * Version            : V1.0.0
// * Date               : 00-May-20
// * Description        : 
// *****************************************************************************************/
// /* Includes ----------------------------------------------------------------------------*/
// #include "freertos/FreeRTOS.h"
// #include "freertos/task.h"

// // #include "SysConfig.h"
// #include "Bsp.h"
// #include "RailMain.h"
// #include "MEAS.h"
// #include "button.h"
// #include "UI.h"

// #include "UI_TestValue.h"
// /* Extern variables --------------------------------------------------------------------*/
// /* Private define ----------------------------------------------------------------------*/
// /* Private macro -----------------------------------------------------------------------*/
// /* Private typedef ---------------------------------------------------------------------*/
// /* Private variables -------------------------------------------------------------------*/
// static struct rt_timer ui_timer;
// static EVENT_SRCEEN event_screen;
// static void cb_ui_timer(TimerHandle_t parameter);
// static struct rt_mutex mtx_process_event;
// /* Private functions -------------------------------------------------------------------*/
// static HMI_ENGINE_RESULT	UI_Initialize(SGUI_SCR_DEV *pDev);
// static HMI_ENGINE_RESULT	UI_ExitScreen(SGUI_SCR_DEV *pDev);
// static HMI_ENGINE_RESULT	UI_Prepare(SGUI_SCR_DEV *pDev,const void* pParameters);
// static HMI_ENGINE_RESULT	UI_Refresh(SGUI_SCR_DEV *pDev,const void* pParameters);
// static HMI_ENGINE_RESULT	UI_ProcessEvent(SGUI_SCR_DEV *pDev,const HMI_EVENT_BASE* pEvent,SGUI_INT* pActionID);
// static HMI_ENGINE_RESULT	UI_PostProcess(SGUI_SCR_DEV *pDev,HMI_ENGINE_RESULT eProcResult,SGUI_INT ActionID);

// static HMI_SCREEN_ACTION	UI_action = 
// {
// 	UI_Initialize,
// 	UI_Prepare,
// 	UI_Refresh,
// 	UI_ProcessEvent,
// 	UI_PostProcess,
// 	UI_ExitScreen,
// };

// HMI_SCREEN_OBJECT		UI_TestValue = 
// {
// 	UI_SCREEN_ID_TEST_VALUE,
// 	&UI_action
// };

// /*****************************************************************************************
// * Function Name  : UI_Welcome_Initialize
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// HMI_ENGINE_RESULT	UI_Initialize(SGUI_SCR_DEV *pDev)
// {	
	
// 	rt_mutex_init(&mtx_process_event,"mtx_process_event",RT_IPC_FLAG_FIFO);
	
// 	rt_timer_init(&ui_timer,"tm_ui_period",
// 					cb_ui_timer,
// 					RT_NULL,
// 					100,
// 					RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER);
	
// 	HMI_EVENT_INIT(event_screen);
	
// 	return HMI_RET_NORMAL;
// }
// //

// /*****************************************************************************************
// * Function Name  : UI_ExitScreen
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// HMI_ENGINE_RESULT	UI_ExitScreen(SGUI_SCR_DEV *pDev)
// {	
// 	rt_timer_stop(&ui_timer);
	
// 	return HMI_RET_NORMAL;
// }
// //
// int test_value = 7683;
// /*****************************************************************************************
// * Function Name  : 
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// HMI_ENGINE_RESULT	UI_Prepare(SGUI_SCR_DEV *pDev,const void* pParameters)
// {		
// 	SGUI_RECT 			Area;
// 	SGUI_POINT			InPos;	
// 	uint8_t 			char_buf[16];
	
// 	SGUI_Basic_ClearScreen(pDev);
	
// 	Area.iX = 0;
// 	Area.iY = 0;
// 	Area.iWidth = 32;
// 	Area.iHeight = 8;
	
// 	InPos.iX = 0;
// 	InPos.iY = 0;
	
// //	SGUI_Common_IntegerToStringWithDecimalPoint(test_value,1,(SGUI_SZSTR)char_buf,1,' ');
// //	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
	
// 	rt_timer_start(&ui_timer);
	
// 	return HMI_RET_NORMAL;
// }
// //
// extern int32_t adc_test_value[];
// /*****************************************************************************************
// * Function Name  : 
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// HMI_ENGINE_RESULT	UI_Refresh(SGUI_SCR_DEV *pDev,const void* pParameters)
// {
// 	uint16_t alignment_Pos;
// 	SGUI_RECT 			Area;
// 	SGUI_POINT			InPos;	
// 	uint8_t 			char_buf[16];
	
	

// 	Area.iX = 0;
// 	Area.iY = 0;
// 	Area.iWidth = 64;
// 	Area.iHeight = 16;
	
// 	InPos.iX = 0;
// 	InPos.iY = 0;

// 	alignment_Pos = SGUI_Common_IntegerToStringWithDecimalPoint(adc_test_value[4],0,(SGUI_SZSTR)char_buf,1,' ');
// 	InPos.iX = (8-alignment_Pos)*8;
// 	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_16,&Area,&InPos,SGUI_DRAW_NORMAL);
	
// 	Area.iX = 0;
// 	Area.iY = 16;
// 	Area.iWidth = 64;
// 	Area.iHeight = 16;
	
// 	InPos.iX = 0;
// 	InPos.iY = 0;

// 	alignment_Pos = SGUI_Common_IntegerToStringWithDecimalPoint(adc_test_value[5],0,(SGUI_SZSTR)char_buf,1,' ');
// 	InPos.iX = (8-alignment_Pos)*8;
// 	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_16,&Area,&InPos,SGUI_DRAW_NORMAL);


// 	////////////////////////////////////
// //	Area.iX = 5;
// //	Area.iY = 0;
// //	Area.iWidth = 24;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	SGUI_Text_DrawText(pDev,(const char*)"CH1:",&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
// //	
// //	Area.iX = 30;
// //	Area.iY = 0;
// //	Area.iWidth = 32;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	test_value = TemperatureBufer[4];	
// //	if(test_value>9999)
// //		test_value = 9999;
// //	if(test_value<-999)
// //		test_value = -999;
// //	alignment_Pos = SGUI_Common_IntegerToStringWithDecimalPoint(test_value,1,(SGUI_SZSTR)char_buf,1,' ');
// //	InPos.iX = (5-alignment_Pos)*6;
// //	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
// //	
// //	//////////////////////////////////
// //	Area.iX = 5;
// //	Area.iY = 10;
// //	Area.iWidth = 24;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	SGUI_Text_DrawText(pDev,(const char*)"CH2:",&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
// //	
// //	Area.iX = 30;
// //	Area.iY = 10;
// //	Area.iWidth = 32;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	test_value = TemperatureBufer[2];	
// //	if(test_value>9999)
// //		test_value = 9999;
// //	if(test_value<-999)
// //		test_value = -999;
// //	alignment_Pos = SGUI_Common_IntegerToStringWithDecimalPoint(test_value,1,(SGUI_SZSTR)char_buf,1,' ');
// //	InPos.iX = (5-alignment_Pos)*6;
// //	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
// //	
// //	//////////////////////////////////////
// //	Area.iX = 5;
// //	Area.iY = 20;
// //	Area.iWidth = 24;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	SGUI_Text_DrawText(pDev,(const char*)"CH3:",&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
// //	
// //	Area.iX = 30;
// //	Area.iY = 20;
// //	Area.iWidth = 32;
// //	Area.iHeight = 8;
// //	
// //	InPos.iX = 0;
// //	InPos.iY = 0;
// //	
// //	test_value = TemperatureBufer[3];	
// //	if(test_value>9999)
// //		test_value = 9999;
// //	if(test_value<-999)
// //		test_value = -999;
// //	alignment_Pos = SGUI_Common_IntegerToStringWithDecimalPoint(test_value,1,(SGUI_SZSTR)char_buf,1,' ');
// //	InPos.iX = (5-alignment_Pos)*6;
// //	SGUI_Text_DrawText(pDev,(const char*)char_buf,&SGUI_DEFAULT_FONT_8,&Area,&InPos,SGUI_DRAW_NORMAL);
	
// 	return HMI_RET_NORMAL;
// }
// //

// /*****************************************************************************************
// * Function Name  : 
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// HMI_ENGINE_RESULT	UI_ProcessEvent(SGUI_SCR_DEV *pDev,const HMI_EVENT_BASE* pEvent,SGUI_INT* pActionID)
// {
// 	HMI_ENGINE_RESULT		eProcessResult;
// 	SGUI_UINT16				KeyValue;
// 	SGUI_UINT16				KeyAction;
// 	KEY_PRESS_EVENT			*pKeyEvent;
// 	SGUI_INT				ProcessAction;
	
// 	rt_mutex_take(&mtx_process_event,RT_WAITING_FOREVER);
	
// 	eProcessResult = HMI_RET_NORMAL;
// 	ProcessAction = HMI_DEMO_PROC_NO_ACT;
	
// 	if(EVENT_TYPE_ACTION == pEvent->iType)
// 	{
// 		if(EVENT_ID_KEY_PRESS == pEvent->iID)
// 		{			
// 			pKeyEvent = (KEY_PRESS_EVENT*)pEvent;
// 			KeyValue = EVENT_KEY_ID(pKeyEvent->Data.uiKeyValue);
// 			KeyAction = EVENT_KEY_ACTION(pKeyEvent->Data.uiKeyValue);	
			
// 			switch(KeyValue)
// 			{
// 				case KEY_PW:
// 				{
// //					if(KeyAction == BUTTON_PRESS)
// //					{
// //						eProcessResult = HMI_RET_CANCEL_KEY;
// //						ProcessAction = HMI_DEMO_PROC_CANCEL;			
// //					}					
// 				}break;
				
// 				case KEY_UP:
// 				{
// 					if(KeyAction == BUTTON_PRESS)
// 					{
// 						eProcessResult = HMI_RET_CANCEL_KEY;
// 						ProcessAction = HMI_DEMO_PROC_CONFIRM;	
// 					}
// 				}break;
				
// 				case KEY_DOWN:
// 				{
// 					if(KeyAction == BUTTON_PRESS)
// 					{

// 					}
					
// 				}break;
				
// 			}
// 		}
// 		else if(EVENT_ID_SCREEN == pEvent->iID)
// 		{
// 			EVENT_SRCEEN *temp_event;
// 			temp_event = (EVENT_SRCEEN*)pEvent;
// 			ProcessAction = HMI_DEMO_PROC_NO_ACT;
			
// 			if(temp_event->Data == 1)
// 			{
// 				UI_Refresh(pDev,RT_NULL);
// 			}
// 		}
// 	}
// 	else if(EVENT_TYPE_DATA == pEvent->iType)
// 	{
// //		if(EVENT_ID_INFOPANNEL == pEvent->iID)
// //		{
// //			ProcessAction = HMI_DEMO_PROC_NO_ACT;
// //			HMI_SwitchScreen(UI_SCREEN_ID_CALIBRATION,&InfoPannel);
// //		}
// 	}
	
// 	if(pActionID != NULL)
// 	{
// 		*pActionID = ProcessAction;
// 	}
	
// 	rt_mutex_release(&mtx_process_event);
	
// 	return eProcessResult;
// }
// //

// HMI_ENGINE_RESULT	UI_PostProcess(SGUI_SCR_DEV *pDev,HMI_ENGINE_RESULT eProcResult,SGUI_INT ActionID)
// {
// 	if(HMI_PROCESS_SUCCESSFUL(eProcResult))
// 	{
// 		if(HMI_DEMO_PROC_CONFIRM == ActionID)
// 		{
			
// 		}
// 		else if(HMI_DEMO_PROC_CANCEL == ActionID)
// 		{
// 			HMI_GoBack(NULL);
// 		}
		
// 	}
// 	return HMI_RET_NORMAL;
// }
// //

// /*****************************************************************************************
// * Function Name  : cb_timer_autoback
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// static void cb_ui_timer(TimerHandle_t parameter)
// {
// 	event_screen.Head.iType =	EVENT_TYPE_ACTION;
// 	event_screen.Head.iID 	=	EVENT_ID_SCREEN;
// 	event_screen.Data = 1;	
// 	HMI_ProcessEvent((HMI_EVENT_BASE*)&event_screen);
// }
// //

// /********************************(C)COPYRIGHT 2016 RSEStudio ****************************/
// /*****************************************END OF FILE************************************/

